
/**
 * ajax请求列表
 */
var ajaxArray = [];
/**
 * 发送验证码倒计时定时器
 */
var intervalTime = null;
/**
 * 手动中止ajax请求
 */
function stopAjax() {
    // return;
    for (var index = 0; index < ajaxArray.length; index++) {
        ajaxArray[index].abort();//停止ajax 
    }
    ajaxArray = [];
}

/**
 * 用户相关POST请求
 * @param {String} url 
 * @param {JSON} param 参数
 * @param {Function} successCB  成功回调
 * @param {Function} errorCB  失败回调
 */
function memberPostData(url, param, successCB, errorCB) {
    $.ajax({
        url: url,
        data: param,
        timeout: 10000, //超时时间设置，单位毫秒
        type: 'POST',
        xhrFields: {
            withCredentials: true // 允许跨域请求时携带COOKIE
        },
        dataType: 'json',
        success: function (data) {
            if (successCB) {
                successCB(data);
            }
        },
        error: function (errorObj) {
            if (errorCB) {
                errorCB(errorObj);
            } else {
            }
        }
    });
}

/**
 * 提示框
 * @param {*} type 提示类型 addSU：类似添加成功的提示
 * @param {*} text  提示文字
 */
function HTML_Page_HintBox(type, text) {
    $('#hintBox').remove();
    var html = '';
    html += '<div id="hintBox" class="u-hintBox">';
    html += '    <p class="clear">';
    if (type) {
        html += '<span class="fl ' + type + '"></span>';
    }
    html += '    <font class="fl">' + text + '</font></p>';
    html += '</div>';
    $('body').append(html);
    setTimeout(function () {
        $('#hintBox').remove();
    }, 2000);
}


//****************用户相关POST请求****************

/**
 * 登录（本地调式）
 */
// function login33() {
//     var json = "{ 'loginType': '1' , 'name':'admin' ,'password' :'admin' }";
//     ajax(HOST + 'user/center/login.go?json=' + encodeURIComponent(Base64.encode(json)) + '&platform=2', null, function (data) {
//         // console.log("登录");
//         // console.log(data);
//         if (data.code == 0) {
//             // 异步重复调三次， 三次后成功与否都不用管
//             mergegoodscart();
//             mergegoodscart();
//             mergegoodscart();
//         }

//     }, function (error) {

//     });
// }

/**
 * 获取图片验证码
 */
function member_verifyCode() {
    var captchaUrl = "https://usercenter3.i4.cn/member_verifyCode.action?member.source=0&member.username=" + $(".u-loginPop .userAccount").val();
    $(".u-loginPop .verifyCode img").attr("src", captchaUrl + '&_=' + Math.random());
}
/**
 * 退出登录
 */
function member_logout() {
    memberPostData('https://usercenter3.i4.cn/member_logout.action', null, function (data) {
        // console.log("退出登录");
        // console.log(data);

        // 判断是否后台
        // if ($("main.admin").hasClass("active") ||
        //     $(".g-pages > .active").attr("id") == "Pay" ||
        //     $(".g-pages > .active").attr("id") == "commitForm" ||
        //     $(".g-pages > .active").attr("id") == "finishPay"
        // ) {
        // }
        HTML_Page_HintBox("", "已退出登录");

        $(".u-login").removeClass("active");
        $(".i4GameMain .noLogin").addClass("active");
        $(".i4GameMain .u-tabBox").removeClass("active");

        $('.i4GameMain .u-tabBox .tabAll').html("");
        $('.i4GameMain .u-tabBox .tabMy').html("");
        sendClientMessage.ClearCookie();

        // $("#myGame")[0].contentWindow.i4app.exitLogin();
        // window.frames[0].postMessage('exitLogin');

    }, function (error) {

    });
}

/**
 * 重置密码
 * @param {*} phone 手机号
 * @param {*} password 重置新密码
 */
function resetPassword(phone, password, successCB) {
    stopAjax();
    memberPostData('https://usercenter3.i4.cn/member_resetPasswordByPhone.action', {
        "member.phone": phone,
        "member.password": password
    }, function (data) {
        // console.log("重置密码");
        // console.log(data);
        $(".u-logins .phoneMsg p").hide();
        if (data.code == 0) {
            // console.log("重置密码成功");
            successCB();
        }
        if (data.code != 0) {
            $(".u-logins .phoneMsg p").show();
            $(".u-logins .phoneMsg p").text(data.message);
        }

    }, function (error) {
    });
}
/**
 * 获取用户信息
 */
function my_info(successCB, errorCB) {
    // 判断是否存在用户cookie
    // if (document.cookie.indexOf("json=") == -1) { return; }

    memberPostData('https://usercenter3.i4.cn/my_info.action' + (i4common.pcguid ? "?pcguid=" + i4common.pcguid : ""), null, function (res) {

        if (res.code != 0) {
            $(".i4GameMain .noLogin").addClass("active");
            return;
        }
        // 关闭登录弹框
        $(".m-login").remove();
        $(".i4GameMain .u-login").addClass("active");
        $(".i4GameMain .noLogin").removeClass("active");

        $(".i4GameMain .u-tabBox").addClass("active");
        $(".i4GameMain .u-login img").attr("src", res.data[0].headFace);

        i4app.queryUserAppList(1);
        sendClientMessage.userInfo(res);

        if (successCB) {
            successCB(res);
        }
    }, function (error) {
        if (errorCB) {
            errorCB();
        }
    });
}

/**
 * 用户名 + 密码登录
 */
function loginByUsername(successCB) {
    // var json = {};
    // json.phone = "13113633633";
    // json.password = "qq1752784611";
    // // console.log(json);
    // login33();
    stopAjax();
    memberPostData('https://usercenter3.i4.cn/member_loginByUsername.action', {
        "member.code": $(".u-loginPop .verifyCode_text").val(),
        "member.username": $(".u-loginPop .userAccount").val(),
        "member.password": $(".u-loginPop .password").val()
    }, function (data) {
        // console.log("用户名 + 密码登录");
        // console.log(data);

        $(".u-loginPop .phoneMsg p").hide();

        if (data.code == 0) {
            successCB();
            HTML_Page_HintBox("", "登录成功");
            my_info(function () { });
            return;
        }

        // 输入错误多次后需要验证
        if (data.code == 21) {
            $(".u-loginPop .verifyCode_box").show();
            member_verifyCode();

            if ($(".u-loginPop .phoneMsg p").attr("data-code") == "1") {
                $(".u-loginPop .phoneMsg p").attr("data-code", "0")
                return;
            }

        } else {
            $(".u-loginPop .verifyCode_box").hide();
        }

        $(".u-loginPop .phoneMsg p").show();
        $(".u-loginPop .phoneMsg p").text(data.message);

    }, function (error) {
    });
}

/**
 * 手机号 + 验证码(验证是否正确)
 * @param {*} phone 手机号
 * @param {*} code 验证码
 * @param {*} source 要获取的验证码类型 0：注册 1：登录 2：核对微信验证码 3:(其他验证)
 * @param {*} successCB 请求成功回调
 */

function loginPhoneCode(phone, code, source, successCB) {
    stopAjax();
    memberPostData('https://usercenter3.i4.cn/member_checkSmsValidateCode.action', {
        // sendSmsPostData('http://192.168.1.160/member_checkSmsValidateCode.action', {
        "member.phone": phone,
        "member.code": code,
        "member.source": source
    }, function (data) {
        // console.log("手机号 + 验证码(验证是否正确)");
        // console.log(data);

        $(".u-logins .phoneMsg p").hide();
        if (data.code == 0) {
            successCB();
            return;
        }
        if (data.code == 10) {
            data.message = "您的手机号尚未注册，请先注册后再登录";
        }
        $(".u-logins .phoneMsg p").show();
        $(".u-logins .phoneMsg p").text(data.message);
        // 输入错误多次后需要验证
        // if (data.code == 21) {
        //     $(".u-loginPop .verifyCode_box").show();
        //     member_verifyCode();
        //     return;
        // } else {
        //     $(".u-loginPop .verifyCode_box").hide();
        // }
    }, function (error) {
    });
}
/**
 * 设置用户名和密码
 * @param {*} username 用户名
 * @param {*} phone 手机号
 * @param {*} password 密码
 */
function registerForPhone(username, phone, password, successCB) {
    stopAjax();
    memberPostData('https://usercenter3.i4.cn/member_registerForPhone.action', {
        "member.username": username,
        "member.phone": phone,
        "member.password": password
    }, function (data) {
        // console.log("注册用户：");
        // console.log(data);
        $(".u-logins .phoneMsg p").hide();
        if (data.code == 0) {
            // console.log("用户注册成功");
            // 获取用户信息
            my_info();
            successCB();
        }
        if (data.code != 0) {
            $(".u-logins .phoneMsg p").show();
            $(".u-logins .phoneMsg p").text(data.message);
        }

    }, function (error) {
    });
}

// commPopup.sendSmsError();
/**
 * 发送手机验证码
 * @param {*} phone 手机号
 * @param {*} source 要获取的验证码类型 0:注册 1：登录 2：核对微信验证码 3:(其他验证)
 * @param {*} imageCode 图形验证码
 * @param {*} successCB 请求成功回调
 */
function sendSms(phone, source, imageCode, successCB) {
    $(".u-logins .phoneMsg p").hide();
    clearInterval(intervalTime);
    stopAjax();
    memberPostData('https://usercenter3.i4.cn/member_sendNsms.action', {
        // sendSmsPostData('http://192.168.1.160/member_sendSms.action', {
        "member.phone": phone,
		'member.code': imageCode,
        "member.source": source
    }, function (data) {
        // console.log("发送手机验证码");
        // console.log(data);
        if (data.code == 0) {
            // console.log("发送手机验证码成功");
            successCB();
            return;
        }
        if (data.code == 1) {
            $(".m-login").remove();
            data.phone = phone;
            data.source = source;
            commPopup.sendSms(data);
            return;
        }
        if (data.code == 48) {
            $(".u-loginPhoneCode .codeBt").addClass("disable");
            $(".u-resetPassword .codeBt").addClass("disable");
            var interval = data.data[0].interval;
            data.message = '请在' + interval + '秒后重试';
            clearInterval(intervalTime);
            intervalTime = setInterval(function () {
                --interval;
                data.message = '请在' + interval + '秒后重试';
                $(".u-logins .phoneMsg p").text(data.message);
                if (interval == 0) {
                    clearInterval(intervalTime);
                    $(".u-logins .phoneMsg p").hide();
                    $(".u-loginPhoneCode .codeBt").removeClass("disable");
                    $(".u-resetPassword .codeBt").removeClass("disable");
                }
            }, 1000);
        }
        $(".u-logins .phoneMsg p").show();
        $(".u-logins .phoneMsg p").text(data.message);
    }, function (error) {

    });
}

/**
 * 枚举
 */
var ENUM = {
    // 标识~商城和客户端交互
    Tag: 10,
    // 网页加载完成
    ClientCode_LoadFinish: 0,
    // 获取设备唯一标识
    ClientCode_GetPcGuid: 17,
    // 绑定 Apple Id
    ClientCode_BindAppleId: 12,
    // 清除Cookie
    ClientCode_ClearCookie: 20,
    // 用户信息
    ClientCode_userInfo: 21,
    // 打开登录框
    ClientCode_openLogin: 25,
    // 退出登录
    ClientCode_exitLogin: 24,
    // 注册
    ClientCode_register: 26,
};
/**
 * 通知客户端
 */
var sendClientMessage = {
    param: {},
    /**
     * 发送指令给客户端
     * @param {JSON} param 
     */
    sendMessage: function (param) {
        // alert("发送指令：" + JSON.stringify(param));
        i4common.callToClient(JSON.stringify(param));
    },
    /**
     * 页面加载完成
     * @param {int} tag 第几个页面
     */
    onLoadPage: function () {
        sendClientMessage.param = {};
        sendClientMessage.param.code = ENUM.ClientCode_LoadFinish;
        sendClientMessage.param.tag = ENUM.Tag;
        sendClientMessage.sendMessage(sendClientMessage.param)
    },
    /**
     * 获取 设置唯一标识
     */
    getPcGuid: function () {
        sendClientMessage.param = {};
        sendClientMessage.param.code = ENUM.ClientCode_GetPcGuid;
        sendClientMessage.param.tag = ENUM.Tag;
        sendClientMessage.sendMessage(sendClientMessage.param)
    },
    /**
     * 绑定 Apple Id 信息
     */
    bindAooleId: function () {
        sendClientMessage.param = {};
        sendClientMessage.param.code = ENUM.ClientCode_BindAppleId;
        sendClientMessage.param.tag = 1;
        sendClientMessage.sendMessage(sendClientMessage.param)
    },
    /**
     * 清除Cookie
     */
    ClearCookie: function () {
        sendClientMessage.param = {};
        sendClientMessage.param.code = ENUM.ClientCode_ClearCookie;
        sendClientMessage.param.tag = ENUM.Tag;
        sendClientMessage.sendMessage(sendClientMessage.param)
    },
    /**
     * 发送用户信息
     */
    userInfo: function (data) {
        sendClientMessage.param = {};
        sendClientMessage.param.code = ENUM.ClientCode_userInfo;
        sendClientMessage.param.tag = ENUM.Tag;
        sendClientMessage.param.userInfo = data.data[0];

        sendClientMessage.sendMessage(sendClientMessage.param)
    },
    /**
     * 打开登录框
     */
    openLogin: function () {
        sendClientMessage.param = {};
        sendClientMessage.param.code = ENUM.ClientCode_openLogin;
        sendClientMessage.param.tag = ENUM.Tag;
        sendClientMessage.sendMessage(sendClientMessage.param)
    },
    /**
     * 退出登录
     */
    exitLogin: function () {
        sendClientMessage.param = {};
        sendClientMessage.param.code = ENUM.ClientCode_exitLogin;
        sendClientMessage.param.tag = ENUM.Tag;
        sendClientMessage.sendMessage(sendClientMessage.param)
    },
    /**
     * 注册
     */
    register: function () {
        sendClientMessage.param = {};
        sendClientMessage.param.code = ENUM.ClientCode_register;
        sendClientMessage.param.tag = ENUM.Tag;
        sendClientMessage.sendMessage(sendClientMessage.param)
    }
}

